package com.zjsru.plan2025.oneday;

/**
 * 2264. 字符串中最大的 3 位相同数字
 *
 * @Author: cookLee
 * @Date: 2025-01-08
 */
public class LargestGoodInteger {

    /**
     * 主
     * \
     * 输入：num = "6777133339"
     * 输出："777"
     * 解释：num 中存在两个优质整数："777" 和 "333" 。
     * "777" 是最大的那个，所以返回 "777" 。
     * \
     * 输入：num = "2300019"
     * 输出："000"
     * 解释："000" 是唯一一个优质整数。
     * \
     * 输入：num = "42352338"
     * 输出：""
     * 解释：不存在长度为 3 且仅由一个唯一数字组成的整数。因此，不存在优质整数。
     * \
     *
     * @param args args
     */
    public static void main(String[] args) {
        LargestGoodInteger largestGoodInteger = new LargestGoodInteger();
        String num = "6777133339";
        System.out.println(largestGoodInteger.largestGoodInteger(num));
    }

    public String largestGoodInteger(String num) {
        int left = 0, right = 0;
        String maxSubstring = "";
        while (right < num.length()) {
            if (num.charAt(right) == num.charAt(left)) {
                right++;
            } else {
                left = right;
            }
            if (right - left == 3) {
                String currentSubstring = num.substring(left, right);
                if (currentSubstring.compareTo(maxSubstring) > 0) {
                    maxSubstring = currentSubstring;
                }
            }
        }
        return maxSubstring;
    }


    public String largestGoodInteger2(String num) {
        for (char d = '9'; d >= '0'; d--) {
            //生成重复的3位
            String s = String.valueOf(d).repeat(3);
            if (num.contains(s)) {
                return s;
            }
        }
        return "";
    }

}
